// strchr and strrchr
// * strstr, strcasestr

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

char* mychr(const char* s, int c)
{
    char* ret;
    while (*s != c && *s != '\0')
    {
        s++;
    }
    ret = *s == '\0' ? NULL : s;

    return ret;
}

int main(int argc, char const *argv[])
{
    // char* strchr(const char* s, int c);
    // 左边开始找
    // char* strrchr(const char* s, int c);
    // 右边开始找
    // 返回NULL表示没找到
    // 找到则返回指针，指向所找的字符
    char s[] = "hello";
    char* p = strchr(s, 'l');
    // 输出"llo"
    printf("%s\n", p);

    // 想找第二个'l'
    char* t = strchr(p + 1, 'l');
    printf("%s\n", t);

    // 把 l 后面的东西复制到另一个字符串
    char* p2 = (char*)malloc(strlen(p) + 1);
    printf("%s\n", strcpy(p2, p));
    free(p2);

    // 想要 l 前面的一段
    // 先用变量 c 暂存 *p 的值
    char c = *p;
    *p = '\0';
    printf("%s\n", s);
    // 恢复变量
    *p = c;

    // 测试
    char* test = mychr(s, 'l');
    printf("%d\n", test == NULL);
    printf("%s\n", test);

    // char* strstr(const char* s1, const char* s2);
    // 在字符串中找字符串
    // char* strcasestr(const char* s1, const char* s2);
    // 不分大小写找字符串
    
    return 0;
}